home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -screenplay- / hd_installers / -whdload- / whdload_dev / src / programs / wver.mod < prev   
Text File  |  1998-07-16  |  2KB  |  83 lines

  1. (*
  2. (* :Program.    WVer.mod
  3. ** :Contents.   creates a version-string from input files
  4. ** :Author.     Bert Jahn
  5. ** :EMail.      jah@pub.th-zwickau.de
  6. ** :Address.    Franz-Liszt-Straße 16, Rudolstadt, 07404, Germany
  7. ** :History.    0.1 01.06.96
  8. ** :Copyright.  Public Domain
  9. ** :Language.   Oberon
  10. ** :Translator. Amiga Oberon 3.11 (Includes 40.15)
  11. *)
  12. *)
  13.  
  14. MODULE WVer;
  15.  
  16. IMPORT
  17.   SYS  := SYSTEM,
  18.   conv := Conversions,
  19.   d    := Dos,
  20.   ds   := DosSupport,
  21.   fs   := FileSystem;
  22.  
  23. CONST
  24.   version  = "$VER: WVer V0.1 (01.06.96) by Bert Jahn";
  25.   template = "VERFILE,REVFILE,AUTO/S";
  26.   defverfile = ".version";
  27.   defrevfile = ".revision";
  28.  
  29. TYPE
  30.   Args = STRUCT (dummy: d.ArgsStruct)
  31.     vfile   : d.ArgString;  (* File contains version *)
  32.     rfile   : d.ArgString;  (* File contains revision *)
  33.     auto    : d.ArgBool;    (* automative increasing revision *)
  34.   END;
  35.  
  36. VAR
  37.   rd      : d.RDArgsPtr;       (* for ReadArgs *)
  38.   args    : Args;
  39.   buffer  : ARRAY 256 OF CHAR; (* the comment *)
  40.   ver,rev : LONGINT;
  41.   file    : fs.File;
  42.   bool    : BOOLEAN;
  43.  
  44.  
  45. (* main *)
  46. BEGIN
  47.   SYS.SETREG(8,SYS.ADR(version));    (* that the version string will linked *)
  48.   IF d.base.lib.version < 37 THEN
  49.     HALT(20);
  50.   ELSE
  51.     rd := d.ReadArgs(template,args,NIL);
  52.     IF rd = NIL THEN
  53.       ds.PrintFault;
  54.     ELSE
  55.       IF args.vfile = NIL THEN args.vfile:=SYS.ADR(defverfile); END;
  56.       IF args.rfile = NIL THEN args.rfile:=SYS.ADR(defrevfile); END;
  57.       IF fs.Open(file,defverfile,FALSE) THEN
  58.         IF fs.ReadString(file,buffer) THEN
  59.           bool := conv.StringToInt(buffer,ver);
  60.         END;
  61.         bool := fs.Close(file);
  62.       END;
  63.       IF fs.Open(file,defrevfile,FALSE) THEN
  64.         IF fs.ReadString(file,buffer) THEN
  65.           bool := conv.StringToInt(buffer,rev);
  66.         END;
  67.         bool := fs.Close(file);
  68.       END;
  69.       IF args.auto # 0 THEN
  70.         INC(rev);
  71.         conv.IntToStringLeft(rev,buffer);
  72.         IF fs.Open(file,defrevfile,TRUE) THEN
  73.           bool := fs.WriteString(file,buffer);
  74.           bool := fs.Close(file);
  75.         END;
  76.       END;
  77.       d.PrintF("%ld.%ld",ver,rev);
  78.       d.FreeArgs(rd);
  79.     END
  80.   END
  81. END WVer.
  82.  
  83.